# 在widget中添加一个按钮，当按钮被点击时，调用一个MainWindow中的槽函数。
from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton, QVBoxLayout, QWidget
import sys

class Widget(QWidget):
    def __init__(self):
        super().__init__()

        # 创建按钮
        self.button = QPushButton("Click me")

        # 将按钮的信号连接到槽函数
        self.button.clicked.connect(self.widget_slot)

        # 创建布局
        layout = QVBoxLayout()
        layout.addWidget(self.button)

        # 设置Widget的布局
        self.setLayout(layout)

    # Widget中的槽函数
    def widget_slot(self):
        print("Widget's slot function is called")

class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()

        # 实例化Widget
        self.widget = Widget()

        # 将Widget添加到主窗口
        self.setCentralWidget(self.widget)

    # MainWindow中的槽函数
    def main_window_slot(self):
        print("Main window's slot function is called")

# 创建应用程序实例
app = QApplication(sys.argv)

# 创建主窗口
main_window = MainWindow()

# 显示主窗口
main_window.show()

# 运行应用程序
sys.exit(app.exec_())
